<?php
/**
 * Clase de la tabla programas
 */
class Programas_Model_DbTable_Programas extends Zend_Db_Table_Abstract {
	/** Table name */
	protected $_name = 'programas';
	protected $_primary = 'codprograma';
	protected $_sequence = 'seq_programas';
//	protected $_rowClass = 'App_Audit_Row';
	
	/**
	 * Devuelve los roles existentes en el sistema
	 * @return array
	 */
	public function getProgramas($datos) {
		$select = $this->select()
		               ->from(array('p'=>'programas'),array("p.codprograma","p.codsnies","p.nombreprograma","p.titulo","to_char(fechavencimientorc,'YYYY-MM-DD') AS fechavencimientorc"))
                       ->join(array('s'=>'sedes'),'s.codsede=p.codsede',array('s.nombresede'))
                       ->join(array('ub'=>'ubicaciongeografica'),'ub.codubicacion=p.codubicacion',array('ub.regional ||\' - \'|| ub.nombreubicacion AS ubicacion'))
		               ->join(array('m'=>'metodologias'),'m.codmetodologia=p.codmetodologia',array('m.nombremetodologia'))
			           ->join(array('n'=>'nivelacademico'),'n.codnivel=p.codnivel',array('n.nombrenivel'))
                       ->order("s.nombresede","p.nombreprograma");
		               
		if (isset($datos["codcronograma"])){
		    $select->joinLeft(array('d'=>'detallecronograma'),'d.codprograma=p.codprograma',array('d.coddetallecronograma','d.fechainicio','d.fechafin','d.observaciondetalle'));
    		if ($datos["nulos"]){
                $select->where ("d.codprograma IS NULL ");
    		}else{
    		    $select->where ("d.codcronograma=?",$datos["codcronograma"]);
    		}
		}
		
		if (!empty($datos["codsede"])){
            $select->where ("p.codsede=?",$datos["codsede"]);
		}
		
		if (isset($datos["codprograma"]) && !empty($datos["codprograma"])){
            $select->where ("p.codprograma=?",$datos["codprograma"]);
		}
		
		$select->setIntegrityCheck(false);
//      Zend_Debug::dump($select->__toString());
		return $select->query()->fetchAll();
	}
	
	public function getNivelesacademicos(){
	    return $this->getAdapter()-> fetchAll("SELECT codnivel,nombrenivel FROM nivelacademico ORDER BY orden_nivel");
	}
	
	public function getMetodologias(){
	    return $this->getAdapter()-> fetchAll("SELECT codmetodologia,nombremetodologia FROM metodologias ORDER BY codmetodologia");
	}
		
}
